]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
st: Clip StEntry to allocation
authorCarlos Garnacho <carlosg@gnome.org>
Fri, 15 Jun 2018 12:23:21 +0000 (14:23 +0200)
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>
Fri, 13 Jul 2018 11:53:45 +0000 (11:53 +0000)
The default get_paint_volume() implementation will do the union
of children, and the child ClutterText paint volume may expand
beyond StEntry size when text overflows.

We actually want all content to be clipped to the StEntry, so
implement get_paint_volume() and tell it so.

src/st/st-entry.c

index e1a23ca298ebbd2b83b8580c53d543a4a65a563b..c7e946d90ea340f5964814a753fedfcfd3bd8829 100644 (file)
@@ -905,6 +905,13 @@ st_entry_unmap (ClutterActor *actor)
   CLUTTER_ACTOR_CLASS (st_entry_parent_class)->unmap (actor);
 }
 
+static gboolean
+st_entry_get_paint_volume (ClutterActor       *actor,
+                           ClutterPaintVolume *volume)
+{
+  return clutter_paint_volume_set_from_allocation (volume, actor);
+}
+
 static void
 st_entry_class_init (StEntryClass *klass)
 {
@@ -922,6 +929,7 @@ st_entry_class_init (StEntryClass *klass)
   actor_class->allocate = st_entry_allocate;
   actor_class->paint = st_entry_paint;
   actor_class->unmap = st_entry_unmap;
+  actor_class->get_paint_volume = st_entry_get_paint_volume;
 
   actor_class->key_press_event = st_entry_key_press_event;
   actor_class->key_focus_in = st_entry_key_focus_in;